# 读非纯文本文件
# （图片\视频\word\ppt)，这些文件编码复杂，用的不是之前文字编码（ascii\gbk\utf8)之类的编码规则，而是jpg\jpeg\gif\png avi\mkv\mp4 等编码方式。我们并不关注jpg\mp4具体原理，只需要关注存储在计算机中的二进制数据。当我们传输这些数据到另外一个计算机上时，那个电脑上的看图软件、视频软件自带的解码库可以将二进制转换为原来的图片\视频。

with open('7写图片红包奖励.JPG', 'rb') as f:
    content = f.read()
    print(content)


# 运行后得到 b'\xff\xd8\xff\xe0\x00\x10J ... 很长一串东西。
# 前缀b代表byte字节  。
# 二进制 00000000 00000011 太长了。 所以用十六进制表示 ，\xff \xd8，\x代表十六进制 ，\xd8一个字节。
# 图片在计算机中存储二进制长成b'\xff\xd8\xff\xe0\x00\x10J '

"""
读图片视频时，python本身不支持这些文件的解码，所以我们只读出文件存储的二进制信息。
open() 模式为'rb', b代表byte字节，encoding参数不用写。
第一小节课例子实质上也是先从硬盘读取文件的二进制，然后再根据encoding=utf8解码成我们看到的文字。

1信息 → 2二进制 → 3信息，
读纯文本文件的例子相当于2、3步
写纯文本文件的例子相当于1、2步
这节课的例子相当于第2步
b'\xff\xd8\xff\ 是第2步的产物
"""
